Image processing has been advancing dramatically. One imaging process involves ‘one-to-many’ matching, i.e., given one image, this process finds its matches from an image archive or image database of a large number of images. In order to maintain acceptably high accuracy, many one-to-many image matching methods use the given image to one-by-one compare the given image to every image in the image database or archive. This process requires an expensive server or server cluster to achieve fast matching speed if the image database has a very large volume of images, such as more than 5 million images. The current industrial record for one-to-many matching is about one million comparisons per second.